package com.dc.seckill.result;

/**
 * 
 * @模块 参数模块
 * @作者 djs
 * @时间 2018年3月6日
 * @版本 1.0
 * @描述 返回全局参数
 */
public class Result<T> {

	private int code;	//返回码
	private String msg;	//返回消息
	private T data;	//返回数据
	
	private Result(T data){
		this.code=0;
		this.msg="success";
		this.data=data;
	}
	
	private Result(CodeMsg codeMsg){
		if(codeMsg == null){
			return;
		}
		this.code = codeMsg.getCode();
		this.msg = codeMsg.getMsg();
	}

	/**
	 * 成功的时候调用
	 * @param data
	 * @return
	 */
	public static <T> Result<T> success(T data){
		return new Result<T>(data);
	}
	
	/**
	 * 失败的时候调用
	 * @param codeMsg
	 * @return
	 */
	public static <T> Result<T> error(CodeMsg codeMsg){
		return new Result<T>(codeMsg);
	}
	
	public int getCode() {
		return code;
	}
	public void setCode(int code) {
		this.code = code;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	public T getData() {
		return data;
	}
	public void setData(T data) {
		this.data = data;
	}



}
